/*
    数字黑洞
    时间限制：1.0 s
    内存限制：128.0 MB
  1.1 问题描述
    给定一个三位数，要求各位不能相同。例如，352是符合要求的，112 是不符合要求的。
    将这个三位数的三个数字重新排列，得到的最大的数，减去得到的最小的数，形成一个新的三位数。
    对这个新的三位数可以重复上述过程。神奇的是，最终一定会得到 495 ！
    例如: 我们对三位数 352 按上述过程进行处理，尝试看看处理结果:
      a). 重新排列 352，得到的最大数为 532，最小数为 235，它们的差是 297；
      b). 变换 297，得到 972 - 297 = 693；
      c). 变换 693，963 - 369 = 594；
      d). 变换 594， 954 - 459 = 495。
    因此， 352 经过4次变换得到了 495。

    现在，输入的三位数，你能通过编程得出，这个三位数经过多少次变换能够得到495吗？
  1.2 输入描述
    输入一行，包含一个符合要求的三位数 N。
  1.3 输出描述
    输出一行，包含一个整数 C，表示经过 C 次变换得到 495。
  1.4 样例输入1
    352
  1.5 样例输出1
    4
*/
#include <iostream>

using namespace std;
int cal(int num) {
  int x,y,z;
  int n;
  int m;
  int a;
  int i;
  int j;
  int k;

  x = num % 10;
  y = num / 10 % 10;
  z = num / 100;
  a = x + y + z;
  n = max(x,y);
  n = max(n,z);
  m = min(x,y);
  m = min(m,z);
  a = a - n - m;
  i = n*100 + a*10 + m;
  j = m*100 + a*10 + n;
  k = i - j;

  return k;
}

int main() {
  int n;
  int x = 0;

  cin >> n;
  while(n != 495){
    n = cal(n);
    x = x + 1;
  }

  cout << x;
  return 0;
}